#include <vector>
#include <iostream>

using namespace std;

// 问题1
// 在这个 6x6 的方阵里：
// 1.1 哪几列上红花最多？
// 1.2 最多的红花是几朵？
vector<int> maxFlowersInColumn(const vector<vector<int>> &positions) {
  /*
  columns[0] 第 0 列的红花数
  columns[1] 第 1 列的红花数
  columns[2] 第 2 列的红花数
  ...
  */
  vector<int> columns(6, 0);

  for (int row = 0; row < positions.size(); ++row) {
    vector<int> p = positions[row];
    
    int c = p[1]; // 红花在第 c 列
    columns[c] += 1;
  }

  // columns 应该就是每一列上的红花数
  // 在 columns 中找出最大值，最多的红花的朵数
  // columns 中有哪几列是这个最大值
  return columns;
}


int bl_to_tr(const vector<vector<int>> &positions) {
  int d = 2 * 100 - 1;
  vector<int> result(d, 0);

  // 遍历每一朵红花的位置
  for (vector<int> pos: positions) {
    int sum = pos[0] + pos[1];
    ++result[sum];
  }

  // 返回 result 里的最大值的迭代器
  return *max_element(result.begin(), result.end());
}

int main(int argc, char const *argv[])
{
  /* 
    positions 中每一个元素，表示一朵红花的位置
   */
  vector<vector<int>> positions {
    {2,1}, {3,2}, {5,2}, {4,3}, {3,4}, {5,4}
  };

  vector<int> result = maxFlowersInColumn(positions);

  for (int n : result) {
    cout << n << endl;
  }
  return 0;
}
